/***************************************************************************************************
  Copyright(C)   2011-2013
  All rights reserved.
  File Name: updatefile.h

  Description: usb监测线程模块，监测是否有usb设备连接，如果有进行挂载，并通知updatefile，
                让updatefile模块开启一个updateresource线程更新资源


  ***************************************************************************************************/

#ifndef USBMONITOR_H
#define USBMONITOR_H

#include <QObject>
#include <QThread>
#include <QDebug>
#include <QDir>
#include <QCoreApplication>
#include <QTime>

#ifdef Q_OS_LINUX
#include <sys/socket.h>
#include <linux/netlink.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <string.h>
#include <linux/fd.h>
#include <sys/mount.h>
#include <scsi/scsi.h>
#include <scsi/sg.h>
#include <scsi/scsi_ioctl.h>
#endif

class UsbMonitor : public QThread
{
    Q_OBJECT
public:
    explicit UsbMonitor(QObject *parent = 0);
//    bool start();
    void stop();

private:
    void usbmonitor();
    int  initsock(void);
    bool getdriver(const char* NLmsg, char* driver);
    bool getmount(const char* driver, char* mount);

    void run();

private:
    QStringList mountPathList;
    bool        m_isStop;           //是否要停止检测

signals:
    void usbChange(int nEventType, QString strPath);

public slots:
};

#endif // USBMONITOR_H
